package io.gitee.dqcer.mcdull.uac.provider.system.domain;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.gitee.dqcer.mcdull.uac.provider.common.annotation.Excel;
import io.gitee.dqcer.mcdull.uac.provider.common.core.domain.BaseEntity;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

/**
 * vehicleInfo对象 car_vehicle
 *
 * @author ruoyi
 * @date 2023-12-10
 */
public class CarVehicle extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 车辆id，主键，自增，整型 */
    private Long vehicleId;

    /** 用户id，外键，引用用户表（user）的user_id，用于表示车辆的所有者 */
    @Excel(name = "用户id，外键，引用用户表", readConverterExp = "u=ser")
    private Long userId;

    /** 车辆品牌 */
    @Excel(name = "车辆品牌")
    private String brand;

    /** 车辆型号 */
    @Excel(name = "车辆型号")
    private String model;

    /** 车辆识别代码 */
    @Excel(name = "车辆识别代码")
    private String vin;

    /** 车牌号 */
    @Excel(name = "车牌号")
    private String licensePlate;

    /** 车辆颜色 */
    @Excel(name = "车辆颜色")
    private String color;

    /** 购车日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "购车日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date purchaseDate;

    /** 车辆年份 */
    @Excel(name = "车辆年份")
    private Long year;

    /** 车辆里程，整型或浮点型 */
    @Excel(name = "车辆里程，整型或浮点型")
    private BigDecimal mileage;

    /** 车辆的制造商 */
    @Excel(name = "车辆的制造商")
    private String manufacturer;

    /** 车辆的发动机编号 */
    @Excel(name = "车辆的发动机编号")
    private String engineNumber;

    /** 车辆所使用的燃料类型，如汽油、柴油、电动等 */
    @Excel(name = "车辆所使用的燃料类型，如汽油、柴油、电动等")
    private String fuelType;

    /** 车辆的变速器类型，如手动、自动等 */
    @Excel(name = "车辆的变速器类型，如手动、自动等")
    private String transmissionType;

    /** 车辆的当前状态，如正常、维修中、报废等 */
    @Excel(name = "车辆的当前状态，如正常、维修中、报废等")
    private String status;

    /** 车辆的注册日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "车辆的注册日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date registrationDate;

    /** 车辆年检的有效期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "车辆年检的有效期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date validityPeriod;

    /** 车辆保险的有效期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "车辆保险的有效期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date insurancePeriod;

    /** 车辆图片数据（可选） */
    @Excel(name = "车辆图片数据", readConverterExp = "可=选")
    private String image;

    /** 记录创建的时间 */
    private Date createdAt;

    /** 记录最后一次更新的时间 */
    private Date updatedAt;

    public void setVehicleId(Long vehicleId)
    {
        this.vehicleId = vehicleId;
    }

    public Long getVehicleId()
    {
        return vehicleId;
    }
    public void setUserId(Long userId)
    {
        this.userId = userId;
    }

    public Long getUserId()
    {
        return userId;
    }
    public void setBrand(String brand)
    {
        this.brand = brand;
    }

    public String getBrand()
    {
        return brand;
    }
    public void setModel(String model)
    {
        this.model = model;
    }

    public String getModel()
    {
        return model;
    }
    public void setVin(String vin)
    {
        this.vin = vin;
    }

    public String getVin()
    {
        return vin;
    }
    public void setLicensePlate(String licensePlate)
    {
        this.licensePlate = licensePlate;
    }

    public String getLicensePlate()
    {
        return licensePlate;
    }
    public void setColor(String color)
    {
        this.color = color;
    }

    public String getColor()
    {
        return color;
    }
    public void setPurchaseDate(Date purchaseDate)
    {
        this.purchaseDate = purchaseDate;
    }

    public Date getPurchaseDate()
    {
        return purchaseDate;
    }
    public void setYear(Long year)
    {
        this.year = year;
    }

    public Long getYear()
    {
        return year;
    }
    public void setMileage(BigDecimal mileage)
    {
        this.mileage = mileage;
    }

    public BigDecimal getMileage()
    {
        return mileage;
    }
    public void setManufacturer(String manufacturer)
    {
        this.manufacturer = manufacturer;
    }

    public String getManufacturer()
    {
        return manufacturer;
    }
    public void setEngineNumber(String engineNumber)
    {
        this.engineNumber = engineNumber;
    }

    public String getEngineNumber()
    {
        return engineNumber;
    }
    public void setFuelType(String fuelType)
    {
        this.fuelType = fuelType;
    }

    public String getFuelType()
    {
        return fuelType;
    }
    public void setTransmissionType(String transmissionType)
    {
        this.transmissionType = transmissionType;
    }

    public String getTransmissionType()
    {
        return transmissionType;
    }
    public void setStatus(String status)
    {
        this.status = status;
    }

    public String getStatus()
    {
        return status;
    }
    public void setRegistrationDate(Date registrationDate)
    {
        this.registrationDate = registrationDate;
    }

    public Date getRegistrationDate()
    {
        return registrationDate;
    }
    public void setValidityPeriod(Date validityPeriod)
    {
        this.validityPeriod = validityPeriod;
    }

    public Date getValidityPeriod()
    {
        return validityPeriod;
    }
    public void setInsurancePeriod(Date insurancePeriod)
    {
        this.insurancePeriod = insurancePeriod;
    }

    public Date getInsurancePeriod()
    {
        return insurancePeriod;
    }
    public void setImage(String image)
    {
        this.image = image;
    }

    public String getImage()
    {
        return image;
    }
    public void setCreatedAt(Date createdAt)
    {
        this.createdAt = createdAt;
    }

    public Date getCreatedAt()
    {
        return createdAt;
    }
    public void setUpdatedAt(Date updatedAt)
    {
        this.updatedAt = updatedAt;
    }

    public Date getUpdatedAt()
    {
        return updatedAt;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
                .append("vehicleId", getVehicleId())
                .append("userId", getUserId())
                .append("brand", getBrand())
                .append("model", getModel())
                .append("vin", getVin())
                .append("licensePlate", getLicensePlate())
                .append("color", getColor())
                .append("purchaseDate", getPurchaseDate())
                .append("year", getYear())
                .append("mileage", getMileage())
                .append("manufacturer", getManufacturer())
                .append("engineNumber", getEngineNumber())
                .append("fuelType", getFuelType())
                .append("transmissionType", getTransmissionType())
                .append("status", getStatus())
                .append("registrationDate", getRegistrationDate())
                .append("validityPeriod", getValidityPeriod())
                .append("insurancePeriod", getInsurancePeriod())
                .append("image", getImage())
                .append("createdAt", getCreatedAt())
                .append("updatedAt", getUpdatedAt())
                .toString();
    }
}